package com.example.service;

import com.example.common.Result;

/**
 * 手机号验证服务接口
 */
public interface PhoneVerificationService {
    
    /**
     * 发送注册验证码
     * @param phone 手机号
     * @return 发送结果
     */
    Result<Void> sendRegisterCode(String phone);
    
    /**
     * 发送登录验证码
     * @param phone 手机号
     * @return 发送结果
     */
    Result<Void> sendLoginCode(String phone);
    
    /**
     * 验证注册验证码
     * @param phone 手机号
     * @param code 验证码
     * @return 验证结果
     */
    Result<Void> verifyRegisterCode(String phone, String code);
    
    /**
     * 验证登录验证码
     * @param phone 手机号
     * @param code 验证码
     * @return 验证结果
     */
    Result<Void> verifyLoginCode(String phone, String code);
    
    /**
     * 检查手机号是否已注册
     * @param phone 手机号
     * @return 是否已注册
     */
    boolean isPhoneRegistered(String phone);
    
    /**
     * 清除验证码
     * @param phone 手机号
     * @param type 验证码类型
     */
    void clearVerificationCode(String phone, String type);
}
